{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.sklearn代码实践"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\23361\\AppData\\Local\\Temp/ipykernel_24776/2542954519.py:10: MatplotlibDeprecationWarning: Axes3D(fig) adding itself to the figure is deprecated since 3.4. Pass the keyword argument auto_add_to_figure=False and use fig.add_axes(ax) to suppress this warning. The default value of auto_add_to_figure will change to False in mpl3.5 and True values will no longer work in 3.6.  This is consistent with other Axes classes.\n",
      "  ax = Axes3D(fig, rect=[0, 0, 1, 1], elev=30, azim=20)\n",
      "H:\\software\\code_tools\\anaconda\\lib\\site-packages\\matplotlib\\collections.py:1003: RuntimeWarning: invalid value encountered in sqrt\n",
      "  scale = np.sqrt(self._sizes) * dpi / 72.0 * self._factor\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x2ce77b0a9d0>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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Vwo5YkeGRyfygx/8AG63G9/85jeXdAwvv/wyLr300rg5s9/+9rcxMTEBYLHLgHQ0PP3009wcg5WM7aaJImyrjdtuuw233norrr76ai5rd/z4cXR1daGrqwt9fX0wGAzo6OjgxK61tXXFa+xmZ2dht9uzUuDKbyki/0j/5FKbxUl7l9iqMhekEjuSbb/11lvx2muv5dV82DxBEbbVhs/nk4yrsSwLl8uF48ePc90Tg4ODKC4u5oRu586daGpqWrakQ6otaDYQahbPxMuup6cHZWVled96RMTO7XbjS1/6Eo4dOwaWZXHZZZdh165duPXWW/PaomqFUYTtfIBlWczPz6Orq4uL2Y2NjaGqqoqrsdu1axfWrVu3ZLFjWRanT59GXV3ditvXpOtl53Q6MTY2ho6OjlWV4Tt16hS+8IUv4Omnn0ZfXx+OHz+OG2+8Ma0t/xpHEbbzFZZlMT09HSd2pFaJrOp27dqFioqKtC76XMarhJDa1jmdTmzatAllZWV5NadACoZhcN111+F73/te2i1Nclqn8nhASzoowqZwDoZhMDY2xlk7dXV1wW63o6WlJW4bW1xcLCh2xLNuz549eVGNLwbDMDh79iyi0Si0Wm3cnAL+yi7X9YFC/P73v8crr7yCn/70p2k/Vk7r1KFDh3D//fevmgEtIiidBwrnUKlUaG5uRnNzM+flRdM0BgcHcfToUTzzzDM4cOAAfD4fWltbk2rsvv71r+MTn/hEXosasOiz5vP54uas8oey8CdQJboU51Ls/H4/HnjgATz33HMZPb6mpobrFDCbzdiyZQump6fzZnW93CgrNgVJYrEYenp6uOTEqVOn4Ha7UVRUhHe84x3o7OzEjh07BHtGcw3Lsjhx4gQ2bNgQN4BFiHzzsvv617+O6upqfOITn1jyc42NjeGyyy7jukEIhw4dws0334y6urpVMaBFBGUrqrB0pqencd111+HBBx9Eb28vjh07hjNnzgAAtm/fzq3stm3blnMbIDIib/PmzRk9XsjLTq1WJ4ldtgV9bGwMt912G1577bWstE696U1vwj333JPUZZDHA1rSQRE2haXz6KOPoqKiIq6th9SenTx5knM76enpgU6nw86dO9HR0YHdu3ejtbV1xbauxA8u2zHA5fayY1kWt956K/7zP/8TV1111ZKONRqN4vrrr8fVV1+NT33qUynv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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#首先我们生成随机数据并可视化\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "%matplotlib inline\n",
    "from sklearn.datasets import make_blobs\n",
    "# X为样本特征，Y为样本簇类别， 共1000个样本，每个样本3个特征，共4个簇\n",
    "X, y = make_blobs(n_samples=10000, n_features=3, centers=[[3,3, 3], [0,0,0], [1,1,1], [2,2,2]], cluster_std=[0.2, 0.1, 0.2, 0.2], random_state =9)\n",
    "fig = plt.figure()\n",
    "ax = Axes3D(fig, rect=[0, 0, 1, 1], elev=30, azim=20)\n",
    "plt.scatter(X[:, 0], X[:, 1], X[:, 2],marker='o')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.98318212 0.00850037 0.00831751]\n",
      "[3.78521638 0.03272613 0.03202212]\n"
     ]
    }
   ],
   "source": [
    "#我们先不降维，只对数据进行投影，看看投影后的三个维度的方差分布，代码如下：\n",
    "from sklearn.decomposition import PCA\n",
    "pca = PCA(n_components=3)\n",
    "pca.fit(X)\n",
    "print(pca.explained_variance_ratio_)\n",
    "print(pca.explained_variance_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看出投影后三个特征维度的方差比例大约为98.3%：0.8%：0.8%。投影后第一个特征占了绝大多数的主成分比例。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.98318212 0.00850037]\n",
      "[3.78521638 0.03272613]\n"
     ]
    }
   ],
   "source": [
    "#现在我们来进行降维，从三维降到2维，代码如下：\n",
    "pca = PCA(n_components=2)\n",
    "pca.fit(X)\n",
    "print(pca.explained_variance_ratio_)\n",
    "print(pca.explained_variance_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这个结果其实可以预料，因为上面三个投影后的特征维度的方差分别为：[ 3.78483785 0.03272285 0.03201892]，投影到二维后选择的肯定是前两个特征，而抛弃第三个特征。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#为了有个直观的认识，我们看看此时转化后的数据分布，代码如下：\n",
    "X_new = pca.transform(X)\n",
    "plt.scatter(X_new[:, 0], X_new[:, 1],marker='o')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可见降维后的数据依然可以很清楚的看到我们之前三维图中的4个簇。\n",
    "\n",
    "现在我们看看不直接指定降维的维度，而指定降维后的主成分方差和比例。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.98318212]\n",
      "[3.78521638]\n",
      "1\n"
     ]
    }
   ],
   "source": [
    "pca = PCA(n_components=0.95)\n",
    "pca.fit(X)\n",
    "print(pca.explained_variance_ratio_)\n",
    "print(pca.explained_variance_)\n",
    "print(pca.n_components_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.98318212 0.00850037]\n",
      "[3.78521638 0.03272613]\n",
      "2\n"
     ]
    }
   ],
   "source": [
    "pca = PCA(n_components=0.99)\n",
    "pca.fit(X)\n",
    "print(pca.explained_variance_ratio_)\n",
    "print(pca.explained_variance_)\n",
    "print(pca.n_components_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这个结果也很好理解，因为我们第一个主成分占了98.3%的方差比例，第二个主成分占了0.8%的方差比例，两者一起可以满足我们的阈值。\n",
    "\n",
    "最后我们看看让MLE算法自己选择降维维度的效果，代码如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.98318212]\n",
      "[3.78521638]\n",
      "1\n"
     ]
    }
   ],
   "source": [
    "pca = PCA(n_components='mle')\n",
    "pca.fit(X)\n",
    "print(pca.explained_variance_ratio_)\n",
    "print(pca.explained_variance_)\n",
    "print(pca.n_components_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可见由于我们的数据的第一个投影特征的方差占比高达98.3%，MLE算法只保留了我们的第一个特征。"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "5f04dd1d6b72ff9d002f9c97d3bf130820120c0ac9ec7321437503cd785f0e6e"
  },
  "kernelspec": {
   "display_name": "Python 3.9.7 ('base')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
